#include <iostream>


class MyPrint {

public:
    int age;
    std::string name;

public:
    void operator()(std::string test) {
        std::cout << test << std::endl;
    }
};

class MyAdd {

public:
    int operator()(int num1, int num2) {
        return num1 + num2;
    }
};

void test01() {
    MyPrint myPrint;
    myPrint("hello world"); // 重载() // 由于使用起来非常类似于函数调用，因此称为仿函数

    MyAdd myAdd;
    int i = myAdd(100, 100);
    std::cout << i << std::endl;

    // 匿名函数对象
    std::cout << MyAdd()(100, 100) << std::endl;
}


int main() {
    test01();
    return 0;
}

